
///////////////////////////////////////////////////////////////////////////////
//
//  Copyright (c) 2005, Adam Kubach
//  All rights reserved.
//  BSD License: http://www.opensource.org/licenses/bsd-license.html
//
///////////////////////////////////////////////////////////////////////////////

#include "Usul/Scope/Timer.h"

#include "Usul/System/Clock.h"

#include <cstdio>

using namespace Usul::Scope;


///////////////////////////////////////////////////////////////////////////////
//
//  Constructor.
//
///////////////////////////////////////////////////////////////////////////////

Timer::Timer ( const std::string & message ) :
  _start ( static_cast < double > ( Usul::System::Clock::milliseconds() ) ),
  _message ( message )
{
}

///////////////////////////////////////////////////////////////////////////////
//
//  Destructor.
//
///////////////////////////////////////////////////////////////////////////////

Timer::~Timer()
{
  ::printf ( "%8.4f seconds .... %s.\n", static_cast < double > ( Usul::System::Clock::milliseconds() - _start ) * 0.001, _message.c_str() ); 
  ::fflush ( stdout );
}

